from base.box import BoxDriver, Browser, TestCase, CsvHelper
from biz.ranzhi.zone.zone_page import ZonePage


class ZoneTest(TestCase):
    driver = None
    page = None

    def set_up(self):
        """
        前置条件
        f = field 字段，变量
        m = method 方法
        :return:
        """
        self.driver = BoxDriver(Browser.Chrome)
        self.page = ZonePage(self.driver)

    def tear_down(self):
        """
        清理操作
        :return:
        """
        self.driver.quit()

    def test_01_main_menu(self):
        """
        测试主页中的菜单
        实际上就是第一次点击菜单
        :return:
        """
        # 写个 CSV
        csv_data = CsvHelper().read_data_as_dict("./case/data/zone_test_01_main_menu.csv")
        for row in csv_data:
            self.page.open("http://192.168.1.251/ranzhi/www")
            self.page.input_login_info("admin", "123456")
            self.page.do_login()

            menu_name = row["菜单"].strip()
            menu_url = row["URL"].strip()

            # 主页点击菜单
            self.page.click_menu(menu_name)

            # 检查菜单点击以后的URL
            self.assertIn(menu_url, self.driver.get_url(), "主页首次点击菜单 %s 挂了" % menu_name)

            # 检查菜单点击以后的状态
            self.assertTrue(self.page.check_zone_menu_active_status(menu_name), "主页首次点击菜单 %s 后没处于激活状态" % menu_name)

            self.page.do_logout(True)

    def test_02_zone_menu(self):
        """
        测试我的地盘页面的 菜单
        :return:
        """

        csv_data = self.read_data_as_dict("./case/data/zone_test_02_zone_menu.csv")
        for row in csv_data:
            self.page.open("http://192.168.1.251/ranzhi/www")
            self.page.input_login_info("admin", "123456")
            self.page.do_login()

            main_menu_name = row["第一次菜单"].strip()
            main_menu_url = row["第一次URL"].strip()
            zone_menu_name = row["第二次菜单"].strip()
            zone_menu_url = row["第二次URL"].strip()

            # 主页点击菜单
            self.page.click_menu(main_menu_name)
            self.assertIn(main_menu_url, self.driver.get_url(), "主页首次点击菜单 %s 挂了" % main_menu_name)

            # 检查菜单点击以后的状态
            self.assertTrue(self.page.check_zone_menu_active_status(main_menu_name),
                            "主页首次点击菜单 %s 后没处于激活状态" % main_menu_name)

            # 我的地盘点击菜单
            self.page.click_zone_menu(zone_menu_name)
            self.assertIn(zone_menu_url, self.driver.get_url(), "我的地盘随后点击菜单 %s 挂了" % zone_menu_name)

            # 检查菜单点击以后的状态
            self.assertTrue(self.page.check_zone_menu_active_status(zone_menu_name),
                            "我的地盘随后点击菜单 %s 后没处于激活状态" % zone_menu_name)

            self.page.do_logout(True)
